package com.wj.jiangan.service;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wj.jiangan.pojo.Sort;
import com.wj.jiangan.pojo.vo.SortAndProductQueryVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wj
 * @since 2019-11-05
 */
public interface ISortService {


    /**
     * 获取所有存在的产品类别
     * @return
     */
    List<Sort> getAllExistSort();


    //查询所有
    List<Sort> selectAllSort();

    /**
     * 分页查询类别表
     *
     * @param page
     * @return
     */
    IPage<Sort> findSortByPage(Page<Sort> page);


    //添加
    int saveSort(Sort sort);

    //查询类别名称（所有）
    List<Sort> selectSortByName(Sort sort);

    List<SortAndProductQueryVo> findSortAndProductInfo();

    //产品类别和商品名称进行精确的查询
    List<SortAndProductQueryVo> findSortAndProductIndoAll();

    /**
     * 根据名字查找类别
     * @param queryWrapper
     * @return
     */
    List<Sort> querySortByName(QueryWrapper queryWrapper);



    IPage<SortAndProductQueryVo> findSortAndProductInfoAllPage(Page page, Map<String, Object> param);

    //查询类别名字
    Sort sortByName(String name);

    //下架类别查询
    IPage<Sort> sortByIsUppxia(Page<Sort> page, Map<String, Object> param);

    // 下架（需要一个id）
    void uppxia(Integer sid);


    // 上架（需要一个id）
    void uppshang(Integer sid);

    // 双击修改
    void uppSort(Sort sort);

    // 类别名称不能重复
    int sortNameCount(String name);

    //用于库存信息三级联动的srot中id
    List<Sort> findsortvoAll(int sid);
}
